Programmable logic devices (PLDs) are devices that may be programmed by a user to implement a variety of user-specified circuit designs. One example of a PLD is a field programmable gate array (FPGA). An FPGA may include an array of configurable logic blocks (CLBs), dedicated random access memory blocks (BRAM), input/output blocks (IOBs), digital signal processors (DSPs), a number of processing cores, and other subsystems (such as memory controllers, device management resources, and configuration circuitry) that may be selectively connected together by programmable interconnect structures. A user-specified circuit design may be implemented within a programmable device by loading configuration data representative of the user-specified circuit design into configuration registers that collectively determine the functions and operations performed by the various blocks, interconnect structures, and subsystems of the programmable device.
Electrical components within programmable devices are typically operated within specified operating conditions. For one example, electrical components may be designed to operate within a specified temperature range, and may be disabled or powered down if the operating temperature increases (or decreases) beyond a certain level. For another example, supply voltages are typically maintained between a minimum voltage level and a maximum voltage level to provide a relatively constant operating voltage to other electrical components provided within the programmable device. As programmable devices increase in size and complexity while using lower supply voltages and smaller device geometries, the accuracy with which their operating conditions can be monitored becomes increasingly important.